home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / bbs_util / gfxck122.zip / GFXCHK.DOC < prev    next >
Text File  |  1996-04-16  |  25KB  |  540 lines

  1.  
  2.                   ┌──────────────────────────────────────────┐
  3.                   │             G F X C h e c k              │
  4.                   │  GIF/JPEG/BMP Graphics Checking Utility  │
  5.                   └──────────────────────────────────────────┘
  6.  
  7.  
  8.                                   Version 1.22
  9.                      (c) Copyright 1995-1996 - Stacy Smith
  10.  
  11.  
  12.                                   Courtesy of:
  13.  
  14.                          The Bloom Beacon-Picayune BBS
  15.           Node 1: *** DOWN *** (USRobotics Courier Dual Standard V.34)
  16.                                     FidoNet
  17.                                      ILink
  18.                                     Intelec
  19.  
  20.                                   Stacy Smith
  21.  
  22.  
  23. ┌────────────────────┐
  24. │  1. Introduction:  │
  25. └────────────────────┘
  26.  
  27. GFXCheck was developed to provide the cyberspace community with a means of
  28. validating GIF, JPEG and BMP graphics files without the need for actually
  29. firing up a graphics file viewer.  While there are similar utilities available
  30. for GIF files, they are generally dated, run only under DOS and do nothing to
  31. validate JPEG (currently the leading graphics file format technology) or BMP
  32. files.
  33.  
  34. GFXCheck was designed to address these specific issues.  While GFXCheck
  35. obviously cannot determine the subjective quality of an image, it can detect
  36. many common defects and corruption that can occur in graphic files being
  37. transferred by a variety of media.
  38.  
  39.  
  40. ┌────────────────────────────┐
  41. │  2. Features of GFXCheck:  │
  42. └────────────────────────────┘
  43.  
  44.     ∙ Native versions for both 16-bit DOS and 32-bit OS/2!
  45.     ∙ Automatically identifies (by signature) GIF87a and GIF89a GIF files, JFIF
  46.       1.x format JPEG files, and Windows, OS/2 1.x and OS/2 2.x format BMP
  47.       files.
  48.     ∙ Validates graphics files for proper format and construction (e.g. invalid
  49.       structure, unexpected end of file, etc.).
  50.     ∙ Trims any extraneous bytes from the end of the graphic file.
  51.     ∙ Rejection of graphics files based upon image parameters (e.g. width,
  52.       height and/or number of colors).  These can be set individually for GIF,
  53.       JPEG and BMP graphic formats.
  54.     ∙ Logging of existing GIF and JPEG comments.
  55.     ∙ User-defined stripping and/or insertion of GIF and JPEG comments.
  56.     ∙ User-defined disposition of defective or rejected graphic files.
  57.     ∙ Updates BBS file descriptions (PCBoard-format or similar) with a user-
  58.       configurable information string.
  59.     ∙ User-selectable process logging to a disk file.
  60.     ∙ Written completely in C for optimal speed, using Watcom C/C++ 10.0.
  61.  
  62.  
  63. ┌──────────────────────────────────────────────────────────┐
  64. │  3. Files Included in the GFXCheck Distribution Archive  │
  65. └──────────────────────────────────────────────────────────┘
  66.  
  67.     GFXCHK.EXE      GFXCheck file checker program (16-bit DOS).
  68.     GFXCHK2.EXE     GFXCheck file checker program (32-bit OS/2).
  69.     GFXCHK.DOC      This file.
  70.     SAMPLE.CFG      Sample configuration file.
  71.     GIF.TPL         Sample GIF comment template.
  72.     JPEG.TPL        Sample JPEG comment template.
  73.     SUPPORT.DOC     List of authorized support sites for my shareware.
  74.     HISTORY.DOC     GFXCheck revision history in reverse order.
  75.     REGISTER.FRM    Registration form for GFXCheck and other software.
  76.     FILE_ID.DIZ     Internal description file.
  77.  
  78. When you unzip the distribution archive, you should see my PKZIP authenticity
  79. verification stamp, and a '-AV' after every file in the archive:
  80.  
  81.     # SSU301    The Bloom Beacon-Picayune BBS
  82.  
  83. If there are any files missing or added, or the -AV stamp is missing, the
  84. archive has been tampered with.  It would be advisable to call my BBS (listed
  85. at the top of this document) or one of the support sites listed in the
  86. SUPPORT.DOC file for the latest version of GFXCheck.
  87.  
  88.  
  89. ┌───────────────────────────┐
  90. │  4. Program Requirements  │
  91. └───────────────────────────┘
  92.  
  93. To the best of my knowledge, this program will run on most any machine, as it
  94. uses no specific hardware or operating system features.  I have personally
  95. tested GFXCheck under OS/2 Warp 3.0, DOS 6.20, DESQview and Windows for
  96. Workgroups 3.11, although I don't expect problems under other configurations
  97. given they conform to the general requirements of GFXCheck.
  98.  
  99. GFXCheck requires DOS 3.x and higher (or OS/2 2.0 and higher for GFXCheck/2),
  100. as it uses DOS SHARE-compatible file reads and writes.  GFXCheck's memory
  101. requirements are very small (less than 100K) and should run merrily under most
  102. any upload or file processing software, in many cases without any need for
  103. swapping.
  104.  
  105.  
  106. ┌───────────────────┐
  107. │  5. Registration  │
  108. └───────────────────┘
  109.  
  110. GFXCheck is not free; nor is GFXCheck crippled to force registration.  GFXCheck
  111. is fully functional, and will always remain so.  The only variation with the
  112. registered copies is no time delay and beg message.
  113.  
  114. Why register?  Besides a clean conscience, you will get a registration key
  115. that will work for all future versions of GFXCheck, and will remove the delay
  116. and beg message at the end of execution.
  117.  
  118. The registration fee for your unique key is $20 for hobbyist use.  The
  119. registration fee for commercial use, defined if you use GFXCheck in the course
  120. of a commercial business or for profit (e.g. CD-ROM production, more than 10
  121. BBS nodes, etc.), is $30.  Refer to the file REGISTER.FRM for more registration
  122. information.  Please print the file REGISTER.FRM and fill it out.  You can
  123. print out the form by issuing the following command from the DOS prompt:
  124.  
  125.         TYPE REGISTER.FRM > PRN
  126.  
  127.  
  128. ┌───────────────────────────────────────┐
  129. │  6. License, Warranty and Disclaimer  │
  130. └───────────────────────────────────────┘
  131.  
  132. I'll keep this part short and sweet, and dispense with the legal-ese:
  133.  
  134.     License:  You are allowed to use GFXCheck for 30 days, after which you must
  135.         either register GFXCheck or stop using it completely.  Decompiling,
  136.         disassembly or any other form of reverse-engineering GFXCheck for any
  137.         purpose is prohibited.  GFXCheck registration is a license for your use
  138.         of GFXCheck; I retain ownership of the software.  A single registration
  139.         applies to a single enterprise (e.g. BBS, CD-ROM mastering company)
  140.         regardless of the number of computers used.  If you run two or more
  141.         distinct BBS systems on the same computer (with different names), you
  142.         require two or more GFXCheck registrations.  GFXCheck registrations are
  143.         not transferrable; you cannot sell your registration to another person.
  144.  
  145.     Warranty:  There isn't one. The only thing I'll guarantee is that GFXCheck
  146.         will take up disk space, and will disappear when deleted.
  147.  
  148.     Disclaimer:  I'm not responsible for anything bad that happens. GFXCheck
  149.         works for me, but I cannot be held responsible for it not working on
  150.         your computer or doing any damage to hardware or software.
  151.  
  152. If these conditions aren't agreeable with you, then the best thing to do is
  153. delete GFXCheck right now.  I'll do my best to help any user (registered or
  154. not) that wants to use GFXCheck, and I'll act on bug reports quickly, but I
  155. simply cannot and will not be responsible for anything bad, like lost data,
  156. disk crashes, or whatever else you can think of.
  157.  
  158.  
  159. ┌───────────────────┐
  160. │  7. Installation  │
  161. └───────────────────┘
  162.  
  163. GENERAL INSTALLATION:
  164. ─────────────────────
  165. Make a subdirectory on your hard drive.  For the purposes of this document,
  166. we'll call it "D:\GFXCHK".  Unarchive the GFXCheck distribution archive into
  167. this subdirectory.  You've more than likely already made it this far, if you're
  168. reading this file. <grin>
  169.  
  170. The GFXCheck program opens a few files at once for various reasons.  I would
  171. recommend that you have a minimum of FILES=30 per node in your system
  172. CONFIG.SYS file for a DOS single-node system, since GFXCheck is often run in
  173. conjunction with your BBS and upload or file processing software.
  174.  
  175. If you are running under a DOS network or a multitasking operating system, you
  176. should already have DOS's SHARE.EXE loaded.  You must have SHARE loaded (or
  177. running an operating system that has SHARE functionality, such as OS/2 or
  178. Novell) in order to take advantage of the file sharing and locking methods used
  179. by the GFXCheck program to prevent data loss.  (If you are running a single-
  180. node system without a multitasker, SHARE is not needed).
  181.  
  182. Edit the sample configuration file to suit your needs.  Proper configuration
  183. will require you to refer to this section and the section titled
  184. "Configuration", which has an in-depth explanation of each configuration
  185. parameter and its function.  It might be wise to fire up your printer for this
  186. document.
  187.  
  188. Note that for the GFXCheck program, you can obtain a limited program syntax
  189. screen simply by executing the program without any command-line switches.
  190.  
  191. COMMAND-LINE SWITCHES:
  192. ──────────────────────
  193. As a bare minimum, GFXCheck requires two command line parameters: one for the
  194. GFXCheck's configuration file (-C switch) and another for the graphic file(s)
  195. to test (-F switch).  For example, the following command lines are both valid:
  196.  
  197.     D:\GFXCHK\GFXCHK.EXE -Cd:\gfxchk\gfxchk.cfg -Fd:\path\graphic.ext
  198.     GFXCHK.EXE -Cgfxchk.cfg -Fd:\path\graphic.ext
  199.  
  200. The second command line will work if your GFXCheck subdirectory is part of your
  201. system's PATH.  In order to find the configuration file, GFXCheck will first
  202. try to open the configuration file as passed.  If that fails, GFXCheck will
  203. then try to open the same file in the same directory that GFXCHK.EXE is in
  204. (unless an explicit path has been passed on the command line as in the first
  205. example).
  206.  
  207. If you want GFXCheck to update file descriptions, the corresponding description
  208. file must be passed on the command line using the -D switch:
  209.  
  210.     GFXCHK.EXE -Cgfxchk.cfg -Fd:\path\graphic.ext -Dd:\path\desc.lst
  211.  
  212. Note that GFXCheck will modify only descriptions for graphic file(s) that it
  213. has processed; descriptions for any other files will be retained without
  214. change.  Further, if no matching description is found, GFXCheck will not add a
  215. description; it will log the fact that a description is missing in its log
  216. file.
  217.  
  218. GFXCheck by default will check all graphics files passed to it.  If you only
  219. want to extract image parameters and skip validation, add the -I command line
  220. switch.  This will greatly speed processing if you do not need to perform any
  221. checking at that time.  For example, if you only want to update your BBS
  222. descriptions, this switch would make the process quicker.  Do not use this
  223. switch under normal testing conditions in your file/upload processor.
  224.  
  225. The -R command line switch forces GFXCheck to restore the graphic file date and
  226. time stamps.  By default, if GFXCheck updates the file (by trimming extraneous
  227. bytes), the date will be changed to reflect the date of modification.
  228.  
  229. Lastly, GFXCheck normally sounds a beep on error.  If this is not desired, the
  230. -Q switch will silence GFXCheck during operation.
  231.  
  232. INSTALLATION INTO YOUR BBS UPLOAD PROCESSOR:
  233. ────────────────────────────────────────────
  234. GFXCheck is designed to operate like most any other file checker, such as virus
  235. checkers, etc..  Generally, it will operate on a subdirectory of files that
  236. have already been extracted by the upload processing system or will be passed a
  237. specific graphic file to check.
  238.  
  239. The best application for GFXCheck is to be executed as a graphic file test
  240. utility where just graphic files are passed to it by the calling program, e.g.:
  241.  
  242.     D:\GFXCHK\GFXCHK.EXE -Cd:\gfxchk\gfxchk.cfg -Fd:\path\graphic.ext
  243.  
  244. In the case of UpLoadProcessor (2.10 or higher), the command line is simply:
  245.  
  246.     D:\GFXCHK\GFXCHK.EXE -Cgfxchk.cfg -F@FILE@
  247.  
  248. In the absence of a feature to execute checkers solely for graphic files in the
  249. calling program, GFXCheck can be configured similar to a virus-scanning
  250. program, since at that point in time the files are already extracted from the
  251. upload being processed.  Depending upon how your upload processor operates, the
  252. command lines and configuration can be different.
  253.  
  254. If your upload processor executes the file testers from the directory where the
  255. files are located (UpLoadProcessor is an example of this behavior, although it
  256. can pass specific graphic files to GFXCheck), the command line can be simply:
  257.  
  258.     D:\GFXCHK\GFXCHK.EXE -Cd:\gfxchk\gfxchk.cfg -F*.*
  259.  
  260. GFXCheck also supports list files when preceeded by a '@' character (e.g.
  261. -F@FILE.LST) for the file command-line switch parameter.  The list file must
  262. have one filespec per line, standard DOS wildcards are permitted.  Any line in
  263. the list starting with a semicolon will be considered a comment and skipped.
  264.  
  265. Note that if you use GFXCheck in this manner, you should turn off the
  266. FAIL_UNKNOWN configuration switch to prevent unknown (non-graphic) format files
  267. from triggering a failure.
  268.  
  269.  
  270. ┌────────────────────┐
  271. │  8. Configuration  │
  272. └────────────────────┘
  273.  
  274. The sample configuration file included in the distribution archive is heavily
  275. commented, but some additional information is provided below:
  276.  
  277. LOG_FILE
  278.     GFXCheck will write process and error information to a log file, if
  279.     desired.  This parameter is the path/filename of the log file for GFXCheck
  280.     to record its activities.  Comment out if you don't want any disk logging.
  281.     If you need support for GFXCheck, the first thing you will have to have is
  282.     a log file, so it is recommmended that you configure one.
  283.  
  284. LOG_MODE
  285.     Assuming the a log file is configured, GFXCheck can write two types of
  286.     logs:  VERBOSE and TERSE.  TERSE logs little more than pass and fail, while
  287.     VERBOSE offers more detailed information on the files being checked.
  288.  
  289. GOOD_ERRLEV
  290.     The errorlevel that GFXCheck is to return to the operating system if no
  291.     errors were found in any file processed.  If commented out, this value will
  292.     default to 0, since most upload and file processors assume non-zero
  293.     errorlevels to be program execution errors, not information.  This value
  294.     must be between 0 and 255, inclusive.
  295.  
  296. FAIL_ERRLEV
  297.     The errorlevel that GFXCheck is to return to the operating system if one or
  298.     more graphic files checked is defective.  This value defaults to 1.  This
  299.     value must be between 0 and 255, inclusive, or -1.  If -1 is specified, the
  300.     GFXCheck error code of the file is returned to the operating system.  Note
  301.     that if multiple files are processed, the result code of the last file
  302.     processed will be returned (which could be 0 if no error was encountered).
  303.     It is recommended that a fixed failure errorlevel be used unless you ensure
  304.     GFXCheck processes files individually, where the return code/errorlevel is
  305.     meaningful.
  306.  
  307. FAIL_UNKNOWN
  308.     GFXCheck will normally fail a non-graphic file as an unknown format.
  309.     Setting this parameter to NO will prevent this.  This can be useful for
  310.     third party processors that pass an entire directory of various files to
  311.     file checking programs without specifically delineating graphic files.
  312.  
  313. DISPOSITION
  314.     This parameter defines how GFXCheck dispositions defective graphic files.
  315.     Three options are available:  NONE (if GFXCheck is to leave the defective
  316.     file alone), RENAME (if GFXCheck is the rename the file to .BAD) or DELETE
  317.     (self-explanatory).  The default is NONE.
  318.  
  319.     Note that the disposition will be applied to description processing if in
  320.     process.  If the disposition is set to RENAME, the filename will be renamed
  321.     in the description file; if DELETE, the file's description will be deleted.
  322.  
  323. TRIM_EOF
  324.     With this option enabled, GFXCheck will trim any extraneous bytes from the
  325.     end of a GIF or JPEG graphic file, saving disk space and easing the job of
  326.     your duplication checking software, if any.  If commented out, trimming
  327.     will be enabled.
  328.  
  329. GIF_MIN_RES, JPEG_MIN_RES and BMP_MIN_RES
  330.     The minimum acceptable image resolution GFXCheck is to accept for graphic
  331.     files in the format "WIDTH x HEIGHT x COLORS"; this can be set for the two
  332.     formats independently via the two configuration keywords.  If a particular
  333.     element of the image value is set to 0, GFXCheck will not use that element
  334.     in the evaluation.  Setting to 0x0x0 will disable the image resolution
  335.     check entirely and will prevent rejection based upon resolution.
  336.  
  337. ALLOW_GIFLITE
  338.     If GFXCheck is to accept GIF files that have been compressed with GIFLITE,
  339.     set this to YES.  Otherwise, set it to NO or comment out the line.  GIFLITE
  340.     poses problems to duplication checking systems such as that in ULP, ZDCS,
  341.     etc. due to it's variable user-defined compression ratio.  A user could
  342.     conceivably compress the same image several times, producing several files
  343.     that would be the same image but mathematically different.  Default is NO.
  344.  
  345. GIF_INFO_FMT, JPEG_INFO_FMT and BMP_INFO_FMT
  346.     GFXCheck can update BBS directory listings with an information line for
  347.     good GIF, JPEG and/or BMP files.  The following lines define the format for
  348.     the informational line using various @-macros.  Recognized @-macros are:
  349.  
  350.         @BOARDNAME@  BBS name (from key file)
  351.         @SYSTIME@    System time
  352.         @SYSDATE@    System date
  353.         @SYSOPNAME@  BBS sysop's name (from key file)
  354.         @SERIAL@     GFXCheck serial number (from key file)
  355.         @VERSION@    GFXCheck revision number
  356.         @FILENAME@   Filename being processed
  357.         @FORMAT@     Format of the file ("GIF87a", "GIF89a", "JPEG" or "BMP")
  358.         @OSIZE@      Original file size
  359.         @NSIZE@      New file size
  360.         @WID@        GIF/JPEG/BMP image width
  361.         @HGT@        GIF/JPEG/BMP image height
  362.         @COL@        GIF/JPEG/BMP number of colors
  363.         @SCOL@       GIF/JPEG/BMP number of colors (shortened form)
  364.         @COMP@       GIF compression ("GIFLITE" or "None")
  365.  
  366. INFO_POS
  367.     This defines where the inserted text will be placed, as an appended line
  368.     (NEW_LINE) or on the first line (FIRST_LINE) by itself.  The default value
  369.     is NEW_LINE.
  370.  
  371. SEC_DESC_COL
  372.     If GFXCheck is to update BBS directory listings with an information line,
  373.     the following defines the column for the secondary desc character.  The
  374.     defaults is 32, matching PCBoard's default value.
  375.  
  376. SEC_DESC_CHAR
  377.     If GFXCheck is to update BBS directory listings with an information line,
  378.     this defines the secondary desc character.  The default is '|', matching
  379.     PCBoard's default character.
  380.  
  381. CMT_LOG_FILE
  382.     GFXCheck can extract the current comment from the graphics file and log it
  383.     to a log file if this information is of any interest.  Comment out if no
  384.     comment logging is desired.  This cannot be the same file defined as the
  385.     LOG_FILE paramter!
  386.  
  387. GIF_STRIP_CMT and JPEG_STRIP_CMT
  388.     GFXCheck can strip the current comment from a GIF or JPEG graphics file.
  389.     If you want any existing comment stripped, enable one or both parameters.
  390.  
  391. GIF_CMT_TPL and JPEG_CMT_TPL
  392.     GFXCheck is fully capable inserting a new comment into a graphics file;
  393.     note that in the process of doing so, GFXCheck will strip any previous
  394.     comment.  The comments are designed as a template using the same
  395.     @-variables as the information lines and can be individually configured for
  396.     GIF and JPEG files.  If no comments are to be inserted, comment out the
  397.     parameters.  Since many graphics viewers do not like high ASCII, use only
  398.     plain text in your comment templates.  Note that in keeping with the GIF
  399.     standards, if a comment is inserted into a GIF87a GIF file, it will be
  400.     changed to GIF89a, the format that supports comments.
  401.  
  402.  
  403. ┌──────────────────────────────────┐
  404. │  9. BBS Application Information  │
  405. └──────────────────────────────────┘
  406.  
  407. UPLOADPROCESSOR:
  408. ────────────────
  409. The correct configuration setup for GFXCheck within UpLoadProcessor 2.10 (or
  410. higher) is as a graphics file checker.  In the "GIF/JPEG File Testing" menu of
  411. ULPSM, set up the GIF and JPEG file checker command lines as follows:
  412.  
  413.     Checker command:        c:\gfxchk\gfxchk -Cgfxchk.cfg -F@FILE@
  414.     Successful errorlevel:  0 (must match GOOD_ERRLEV setting)
  415.     Run in a window:        Doesn't matter...<N>o might be a little faster
  416.  
  417. In addition, ULP users should not allow GFXCheck to reject based upon
  418. resolution, as ULP has that ability internally.  Set the GIF_MIN_RES and
  419. JPEG_MIN_RES parameters to "0x0x0".
  420.  
  421. As ULP has it's own GIF/JPEG information line functionality, it is not possible
  422. to have GFXCheck update the file description.
  423.  
  424. GENERIC BATCH FILE:
  425. ───────────────────
  426. The following generic batch file (modeled after PCBTEST.BAT) will autodetect
  427. the compression format of the archive using TESTFILE.EXE (a utility provided by
  428. Clark Development with their PCBoard BBS Software) and verify any graphical
  429. uploads with GFXCheck:
  430.  
  431.     @Echo off
  432.     cls
  433.  
  434.     if exist pcbpass.txt del pcbpass.txt
  435.     if exist pcbfail.txt del pcbfail.txt
  436.  
  437.     REM - Intercept GIF, JPEG and BMP files for test...
  438.     d:\pcb\testfile %1 gif jpg bmp
  439.     if errorlevel 98 goto ARCHIVE_TEST
  440.  
  441.     d:\gfxchk\gfxchk -cgfxchk.cfg -f%1 -d%2
  442.     if errorlevel 0 goto GFX_OK
  443.     echo ERROR: File failed GFXCheck file check... > pcbfail.txt
  444.     goto END
  445.  
  446.     :GFX_OK
  447.     echo File passed GFXCheck file check... > pcbpass.txt
  448.     goto END
  449.  
  450.     REM - Your upload processing software goes here for general archives...
  451.     :ARCHIVE_TEST
  452.     e:\programs\ulp2\ulp -Ce:\programs\ulp2\ulp.cfg -F%1 -M%2 -D%3 -T0
  453.  
  454.     :END
  455.     exit
  456.  
  457. OTHER SOFTWARE:
  458. ───────────────
  459. If you are using a BBS file and/or upload processing system other than those
  460. described above, please provide information regarding your implementation
  461. details for inclusion in this documentation.  Thanks!
  462.  
  463.  
  464. ┌──────────────────────────────┐
  465. │  10. The Future of GFXCheck  │
  466. └──────────────────────────────┘
  467.  
  468. GFXCheck will be supported as long as I'm poking around cyberspace (which could
  469. be quite a while...once it's in your blood, it's hard to shake it <g>).
  470. GFXCheck will be expanding it's features so it will be your first choice in
  471. graphic file checkers.  Some current plans:
  472.  
  473.     ∙ Develop functionality to attempt repair of defective graphic files.
  474.     ∙ None...any ideas from you guys?  Thanks! <g>
  475.  
  476. If you have any other suggestions, contact me by good old-fashioned snail-mail
  477. or via the avenues described in SUPPORT.DOC.
  478.  
  479. Thanks for giving GFXCheck a try!
  480.  
  481.  
  482. ┌────────────────────────┐
  483. │  11. Acknowledgements  │
  484. └────────────────────────┘
  485.  
  486. The Graphics Interchange Format(c) is the Copyright property of CompuServe
  487. Incorporated.  GIF(sm) is a Service Mark property of CompuServe Incorporated.
  488. (Standard verbage required by CompuServe)
  489.  
  490.  
  491. ┌────────────────────────────┐
  492. │  Appendix A:  Error Codes  │
  493. └────────────────────────────┘
  494.  
  495. The following is a list of the error codes that GFXCheck puts in the log file
  496. to indicate the various errors detected in GIF, JPEG and BMP files (if the
  497. FAIL_ERRLEV parameter is set to -1, this will also be the operating system
  498. errorlevel).  Since many of these errors are structural in nature, they may not
  499. be of any interest to the average user, but here they are anyway:
  500.  
  501.     1   Unknown format (e.g. not a GIF or JPEG file)
  502.     2   Does not meet minimum resolution defined
  503.     3   Unexpected end of file (short file)
  504.     10  Error in GIF file header
  505.     11  Error in GIF image descriptor
  506.     12  No image in GIF file
  507.     13  GIF version conflict (e.g. GIF89a extensions in GIF87a file)
  508.     14  GIFLITEd GIF file (only if ALLOW_GIFLITE is set to "no")
  509.     20  JPEG duplicate start of image marker
  510.     21  JPEG duplicate APP0 application marker
  511.     22  Error in JPEG APP0 application block
  512.     23  JPEG duplicate start of frame marker
  513.     24  Error in JPEG start of frame block
  514.     25  Error in JPEG Huffman table block
  515.     26  Invalid marker in JPEG file
  516.     27  Missing a required marker in JPEG file
  517.     28  No image in JPEG file
  518.     29  Error in JPEG quantization table block
  519.     30  Error in JPEG restart interval block
  520.     31  Invalid or unknown JPEG marker
  521.     40  Error in BMP file header
  522.     41  Invalid number of planes in BMP
  523.     42  Invalid compression in BMP
  524.     43  Invalid colors used value in BMP
  525.  
  526.  
  527. ┌─────────────────────────────────────┐
  528. │  Appendix B:  Command Line Summary  │
  529. └─────────────────────────────────────┘
  530.  
  531. GFXCHK2 -Cconfig.ext -Fd:\path\graphic.ext [-Dd:\path\descrip.ext] [-I] [-R]
  532.    [-Q]
  533.  
  534.    -C  filename of the configuration file
  535.    -F  full path and filename of the graphic file(s) to be checked
  536.    -D  full path and filename of the description file to be updated  [optional]
  537.    -I  extract image parameters only (no checking)  [optional]
  538.    -R  retain original graphic file date stamp(s)  [optional]
  539.    -Q  quiets beep on error  [optional]
  540.